package com.yidiandao.business.ui.widget.listview.displaylistitem;

import android.app.Activity;
import android.content.Context;
import android.view.View;

import com.yidiandao.business.R;
import com.yidiandao.business.constant.Preferences;
import com.yidiandao.business.data.bean.FavourableInfo;
import com.yidiandao.business.data.bean.Goods;
import com.yidiandao.business.ui.main.shoppingcart.choosegift.ChooseGiftActivity;
import com.yidiandao.business.ui.widget.listview.DisplayListItem;
import com.yidiandao.business.ui.widget.listview.viewholder.ShoppingCartGoodsGiftHolder;
import com.yidiandao.business.utils.PreferenceUtils;
import com.yidiandao.business.utils.UIUtils;

import java.util.List;

/** 购物车 单商品 赠品/加价购 ListItem */
public class ShoppingCartGoodsGiftListItem
        extends DisplayListItem<ShoppingCartGoodsGiftHolder, FavourableInfo>
        implements View.OnClickListener {

    private Activity mActivity;

    private List<Goods> mGiftList;

    public ShoppingCartGoodsGiftListItem(FavourableInfo s) {
        super(s);
    }

    @Override
    public void onShow(Context context, ShoppingCartGoodsGiftHolder holder) {
        mActivity = (Activity) context;

        // 当前满减活动属于 单个商品的
        // 需要判断是否含有赠品，如果没有，则说明没有达到赠品的选择条件
        mGiftList = data.getGiftList();
        if (mGiftList.size() == 0) {
            // 没有达到赠品的选择条件
            // 直接显示 赠品活动 的标题，隐藏选择赠品与赠品数量选项
            holder.setSmallTitle(data.getTitle());
            holder.setContent(data.getContent());
            holder.setShowChooseButton(false);
        } else {
            Goods chooseGift = data.getChooseGift();
            Goods belongGoods = data.getBelongGoods();
            if (chooseGift == null || !belongGoods.isSelected()) {
                // 没有选择赠品       或者当前 商品并未选中
                // 原因是第一个赠品是加价购,因为如果第一个赠品不是加价购,则默认会选中,导致最少都有一个赠品选中
                // 直接显示赠品活动的标题，隐藏赠品数量. 显示 “选择赠品”
                holder.setSmallTitle(data.getTitle());
                holder.setContent(data.getContent());
                // 根据商品是否选中来决定是否显示 “选择赠品” 的按钮
                holder.setShowChooseButton(belongGoods.isSelected());
                holder.setChooseButtonContent(true);
            } else {
                // 有选择的赠品。加价购或赠品
                // 左边显示 “赠品” 显示 赠品的真实名字 显示赠品的数量 显示 “重选赠品”
                holder.setLargeTitle();
                holder.setContent(chooseGift.getGoodsName());
                holder.setShowChooseButton(true);
                holder.setChooseButtonContent(false);
                holder.setGiftCount(chooseGift.getGoodsNumber());
            }
        }

        holder.tvChooseGift.setOnClickListener(this);
    }

    @Override
    public String getDisplayItemTag() {
        return ShoppingCartGoodsGiftListItem.class.getSimpleName();
    }

    @Override
    public Class<ShoppingCartGoodsGiftHolder> getViewHolderClazz() {
        return ShoppingCartGoodsGiftHolder.class;
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.tv_choose_gift:
                PreferenceUtils.setBoolean(
                        UIUtils.getContext(), Preferences.REFRESH_SHOPPING_CART, false, true);
                ChooseGiftActivity.actionStart(mActivity, data.getActId());
                break;
        }
    }
}
